package com.young.weixin.core;

import com.young.weixin.model.message.WxBaseMessage;
import org.springframework.core.Ordered;

/**
 * 微信消息处理
 *
 * @author wangjy
 * @date 2021/10/07 23:04:54
 */
public interface IWxMessageProcess extends Ordered {

    /**
     * 判断当前处理器是否处理该消息
     *
     * @param app         公众号应用, 用来区分多个公众号的场景
     * @param userMessage 用户发起的消息或事件
     * @return true表示处理器可以处理该消息, false表示不能处理
     */
    boolean filter(String app, WxBaseMessage userMessage);

    /**
     * 消息处理
     *
     * @param app         公众号应用, 用来区分多个公众号的场景
     * @param userMessage 用户发起的消息或事件
     * @return 回复的消息
     */
    WxBaseMessage process(String app, WxBaseMessage userMessage);

}
